import dayjs from 'dayjs';

/**
 * 获取范围内的随机正整数
 * @param {number} start 开始
 * @param {number} end 结束
 * @param {boolean} includEnd 是否包含结尾，默认为false，不包含结尾
 * @returns
 */
export function getRandomInt(start: number, end: number, includEnd: boolean = false) {
    // 确保end大于或等于start
    if (end < start) {
        [start, end] = [end, start];
    }
    let diff = 0;
    if (includEnd) {
        diff = end - start + 1; // 加1以确保包含end
    } else {
        diff = end - start;
    }
    return Math.floor(Math.random() * diff) + start;
}

/**
 * 获取现在的日期时间，格式是 YYYY-MM-DD hh:ss:mm
 */
export const getYMDHSM = () => {
    return dayjs().format('YYYY-MM-DD hh:mm:ss');
};

/**
 * 获取现在的日期时间，格式是 YYYY-MM-DD
 */
export const getYMD = () => {
    return dayjs().format('YYYY-MM-DD');
};

/**
 * 计算SQL命令分页时候需要的 ' limit m,n '
 * @param currentPage 当前是第几页
 * @param pageSize 每一页的大小
 * @returns 返回计算后的SQL命令需要的参数
 */
export const getSqlLimitParams = (currentPage: number = 1, pageSize: number = 10) => {
    currentPage = Number(currentPage);
    pageSize = Number(pageSize);
    return [(currentPage - 1) * pageSize, pageSize];
};
